import scala.collection.mutable

object Demo15Set {
  def main(args: Array[String]): Unit = {
    /**
     * Set集合
     * 特点：元素不能重复、无序、不可变的
     */
    val set1: Set[Int] = Set[Int](1, 2, 3, 4, 3, 2, 1, 6, 7, 8, 5)
    println(set1)

    // 集合一般用于去重以及集合之间的运算
    // 交集、并集、差集等
    val set2: Set[Int] = Set[Int](1, 2, 3, 4, 5, 6)
    val set3: Set[Int] = Set[Int](4, 5, 6, 7, 8, 9)

    println(set2 & set3)
    println(set2 | set3)
    println(set2.diff(set3))

    // List中常见的方法在Set中也有
    println(set2.max)
    println(set2.min)
    println(set2.take(1))
    println(set2.head)
    println(set2.tail)
    // ......

    // List常见的操作在Set中也有
    //    set2.map()
    //    set2.foreach()
    //    set2.filter()
    //    set2.groupBy()
    //    set2.flatMap()
    // ......

    // 可变的集合HashSet
    val hashSet: mutable.HashSet[Int] = mutable.HashSet[Int](1, 2, 3, 4, 5, 4, 6, 7, 1, 2)

    // 增删改查方法
    hashSet.add(10)
    hashSet.add(7) // 会被去重
    hashSet.add(8)
    hashSet.add(9)
    println(hashSet)

    hashSet.remove(1)
    hashSet.remove(3)
    hashSet.remove(4)
    println(hashSet)


  }

}
